﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace CharacterCreation.Business.ViewModels
{
    [Description("Strength")]
    public class VMStrength : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Damage adjustment")]
        public int DamageAdjustment { get; set; }
        [Display(Name = "Weight allowance")]
        public int WeightAllowance { get; set; }
        [Display(Name = "Internal strength adjustment")]
        public int InternalStrengthAdjustment { get; set; }
    }

    [Description("Dexterity")]
    public class VMDexterity : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Initiative modifier")]
        public int InitiativeModifier { get; set; }
        [Display(Name = "Combat penalty")]
        public int CombatPenalty { get; set; }
    }

    [Description("Fighting")]
    public class VMFighting : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Combat penalty")]
        public int CombatPenalty { get; set; }
        [Display(Name = "Weapon penalty")]
        public int WeaponPenalty { get; set; }
    }

    [Description("Constitution")]
    public class VMConstitution : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Beginning HP adjustment")]
        public int BeginningHitpointAdjustment { get; set; }
        [Display(Name = "Healing rate")]
        public double HealingRate { get; set; }
        [Display(Name = "Resistance to poison")]
        public int ResistanceToPoison { get; set; }
        [Display(Name = "Resistance to disease")]
        public int ResistanceToDisease { get; set; }
    }

    [Description("Perception")]
    public class VMPerception : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Range adjustment")]
        public int RangeAdjustment { get; set; }
    }

    [Description("Intelligence")]
    public class VMIntelligence : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Experience adjustment")]
        public int ExperienceAdjustment { get; set; }
        [Display(Name = "Skill adjustment")]
        public int SkillAdjustment { get; set; }
    }

    [Description("Will power")]
    public class VMWillPower : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Beginning Ess adjustment")]
        public int BeginningEssenceAdjustment { get; set; }
        [Display(Name = "Essence healing rate")]
        public double EssenceHealingRate { get; set; }
    }

    [Description("Charisma")]
    public class VMCharisma : ViewModelBase
    {
        [Display(Name = "Level")]
        public int Level { get; set; }
        [Display(Name = "Appearance adjustment")]
        public int AppearanceAdjustment { get; set; }
    }
}
